import { AuditLogItem } from '@/api/audit/auth/model/authorModel'
import { PageReqParams } from '@/api/types'

export enum Gender {
  UNKNOW,
  MAN,
  WOMAN,
}

export enum Source {
  /** plus */
  PLUS = 1,
  /** dp */
  DP,
  /** 优图 */
  BEST_IMG,
  /** 开篇 */
  OPEN_PIECE,
}

export enum RecommendStatus {
  /** 正常 */
  NORMAL,
  /** 推荐 */
  RECOM,
}

export enum AuditStatus {
  /** 待审 */
  WAIT,
  /** 审核通过 */
  ACCESS,
  /** 审核不通过 */
  UNACCESS,
}

export enum ContractStatus {
  /** 正常 */
  NORMAL,
  /** 解约 */
  UNCONTRACT,
}

export enum ExclusiveStatus {
  /** 正常 */
  NORMAL,
  /** 独家 */
  EXCLUSIVE,
}

export enum IdentityType {
  /** 身份证 */
  IDENTITY_CARD,
  /** 驾驶证 */
  DRIVING_LICENCE,
}

export enum AuditType {
  /** 作者审核 */
  AUTHOR_AUDIT = 1,
  /** 素材内容审核 */
  MATERIAL_AUDIT,
}

export enum AuditResult {
  /** 待审 */
  WAIT,
  /** 通过 */
  ACCESS,
  /** 不通过 */
  UNACCESS,
  /** 解约 */
  UNCONTRACT,
  /** 再签 */
  AGAIN_UNCONTRACT,
}

export interface Author {
  /** 作者ID */
  id: string
  /** 作者名称 */
  name?: string
  /** 呢称 */
  nick?: string
  /** 手机号 */
  phone?: string
  /** 邮箱 */
  email?: string
  /** 个人简介 */
  description?: string
  /** 性别 */
  gender?: Gender
  /** 性别 */
  avatar?: string
  /** 作者来源 */
  source?: Source
  /** 原平台id */
  sourceId?: string
  /** 是否推荐 */
  isRecommend: RecommendStatus
  /** 排序 */
  sort: string
  /** 审核状态 */
  status: AuditStatus
  /** 作品数量 */
  outputs: number
  /** 备注说明 如审核不通过的原因描述 */
  memo?: string
  /** 签约状态 */
  contractStatus?: ContractStatus
  /** 真实姓名 */
  realName: string
  /** 证件类型 */
  identityType: IdentityType
  /** 证件号码 */
  identityNo: string
  /** 出生日期 */
  birthDate?: string
  /** 证件正面 */
  frontImg: string
  /** 证件反面 */
  backImg: string
  /** 擅长类型 */
  favoriates?: string
  /** 常住地 */
  permanentAddress?: string
  /** 是否独家 */
  isExclusive: ExclusiveStatus
  /** 审核记录 */
  auditLogs?: AuditLogItem[]
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime: string
}

export interface AuthWorkItem {
  id: string
  image: string
  title: string
  text: string
  tag_list: {
    name: string
    id: string
  }[]
  category_list: {
    id: string
    name: string
  }[]
  dateline: string
}

export interface QueryAuthorReq extends PageReqParams {
  id?: string
  /** 是否查询详细信息 */
  type?: boolean
  /** 作者名称 */
  name?: string
  /** 邮箱 */
  email?: string
  /** 电话 */
  phone?: string
  /** 来源 */
  source?: Source
  /** 审核状态 */
  status?: AuditStatus
  /** 签约状态 */
  contractStatus?: ContractStatus
}

export interface UpdateAuthorStatusReq {
  id: string
  contractStatus?: ContractStatus
  status?: AuditStatus
  memo?: string
}
export interface GetAuthWorksReq {
  user_id: string
  checked?: string
}
